<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>对象 toString 方法示例</title>
</head>
<body>
<script>

    /**
     * toString 方法
     *  用于返回对象字符串表示
     */
    /**
     * 构造函数 Persion
     * 用于创建具有 name、age 和 gender 属性的对象
     */
    function Persion(name, age, gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    // 创建两个 Persion 实例
    var per1 = new Persion("张三", 18, "男");
    var per2 = new Persion("李四", 18, "男");

    /**
     * 在 Persion 的原型中定义 toString 方法
     * 所有实例共享该方法，避免重复创建
     */
    Persion.prototype.toString = function () {
        return "Persion[name=" + this.name + ", age=" + this.age + ", gender=" + this.gender + "]";
        // 可选返回值：return "我是一个a";
    };

    /**
     * 如果只对单个对象添加 toString 方法，则不会影响其他实例
     * 示例（注释掉）：
     *
     * per1.toString = function () {
     *     return "Persion[name=" + this.name + ", age=" + this.age + ", gender=" + this.gender + "]";
     * };
     */

        // 调用 toString 方法并保存结果
    var result = per1.toString();

    // 输出调试信息
    console.log(result);                // 输出: Persion[name=张三, age=18, gender=男]
    console.log(per1);                  // 对象本身，浏览器可能显示为对象结构
    console.log(per2);                  // 同上
    console.log(per1.toString());       // 输出: Persion[name=张三, age=18, gender=男]
    console.log(per2.toString());       // 输出: Persion[name=李四, age=18, gender=男]
</script>
</body>
</html>
